package com.itheima.homework;

import java.util.Scanner;

/**
 * @author jiangxun
 * @date 11-14-2024
 */
public class Test02 {

    public static void main(String[] args) {
//        System.out.println(getMaxValue());
//        salaryIncrease();
//        printThreeAndFive();
//        printNumber();
//        printFour();
        printAllWatermelon();
    }

    /**
     * 需求:	让用户依次录入三个整数，求出三个数中的最大值，并打印到控制台。【使用if】
     */
    private static int getMaxValue() {
        // 1 输入三个整数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个整数：");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个整数：");
        int num2 = scanner.nextInt();
        System.out.println("请输入第三个整数：");
        int num3 = scanner.nextInt();
        // 2 计算最大值
        int max = num1;
        if (num2 > max) {
            max = num2;
        }
        if (num3 > max) {
            max = num3;
        }
        // 3 打印最大值
        System.out.println("最大值为：" + max);
        return max;
    }

    /**
     * 需求:
     * 1.根据程序员的工龄(整数)给程序员涨工资(整数),程序员的工龄和基本工资通过键盘录入
     * 2.涨工资的条件如下：
     * [10-15)     +20000
     * [5-10)      +10000
     * [3~5)       +5000
     * [1~3)       +3000
     * 3.运行程序:
     * 请输入作为程序员的你的工作的工龄:10
     * 请输入作为程序员的你的基本工资为:60000
     * 程序运行后打印格式
     * "您目前工作了10年，基本工资为 60000元, 应涨工资 20000元,涨后工资 80000元"
     */
    public static void salaryIncrease() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入作为程序员的你的工作的工龄:");
        int age = scanner.nextInt();
        System.out.println("请输入作为程序员的你的基本工资为:");
        int basicSalary = scanner.nextInt();
        int salary = 0;
        if (age >= 10 && age < 15) {
            salary = basicSalary + 20000;
        } else if (age >= 5 && age < 10) {
            salary = basicSalary + 10000;
        } else if (age >= 3 && age < 5) {
            salary = basicSalary + 5000;
        } else if (age >= 1 && age < 3) {
            salary = basicSalary + 3000;
        }
        System.out.println("您目前工作了" + age + "年，基本工资为 "
                + basicSalary + "元, 应涨工资 "
                + salary + "元,涨后工资 "
                + (salary + basicSalary) + "元");
    }

    /**
     * 需求:
     * 打印出1到100之间的既是3的倍数又是5倍数的数字以及这些数字的和
     */
    public static void printThreeAndFive() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                System.out.print(i + " ");
                sum += i;
            }
        }
        System.out.println("\n和为：" + sum);
    }

    /**
     * 需求:
     * 从键盘上录入一个大于100的三位数,打印出100到该数字之间满足如下要求的数字,数字的个数,以及数字的和:
     * 1.数字的个位数不为7;
     * 2.数字的十位数不为5;
     * 3.数字的百位数不为3;
     */
    public static void printNumber() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个大于100的三位数:");
        int num = scanner.nextInt();
        int count = 0;
        int sum = 0;
        for (int i = 100; i <= num; i++) {
            if (i % 10 != 7 && i / 10 % 10 != 5 && i / 100 % 10 != 3) {
                System.out.print(i + " ");
                count++;
                sum += i;
            }
        }
        System.out.println("\n满足条件的数字个数为：" + count);
        System.out.println("满足条件的数字和为：" + sum);
    }

    /**
     * 需求:
     * 1.打印所有四位数中 个位 + 千位 == 百位 + 十位 的数字
     * 2.最后要打印符合条件的数字的总数量
     * 3.打印格式如下:
     * 1010
     * 1021
     * 1032
     * 1043
     * ....
     * 以上满足条件的四位数总共有 615 个
     */
    public static void printFour() {
        int count = 0;
        for (int i = 1000; i <= 9999; i++) {
            if (i % 10 + i / 1000 % 10 == i / 10 % 10 + i / 100 % 10) {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("以上满足条件的四位数总共有 " + count + " 个");
    }

    /**
     * 需求:
     * for循环案例：求水仙花数
     * 需求：在控制台输出所有的“水仙花数”，水仙花数必须满足如下2个要求：
     * 水仙花数是一个三位数
     * 水仙花数的个位、十位、百位的数字立方和等于原数
     */
    public static void printAllWatermelon() {
        int count = 0;

        for (int i = 100; i < 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100;
            int sum = ge * ge * ge + shi * shi * shi + bai * bai * bai;
            if (sum == i) {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("总共有" + count + "个水仙花数");
    }


}
